home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 2.iso / toolbox / public / figlet / figlet2.1.1 / figlet.6.txt < prev    next >
Text File  |  1996-11-11  |  37KB  |  988 lines

  1.  
  2.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  3.  
  4.  
  5.  
  6.      NAME
  7.           figlet - print in large characters made up of ordinary
  8.           screen characters
  9.  
  10.  
  11.      SYNOPSIS
  12.           figlet [ -clnprtvxDELNRX ] [ -d fontdirectory ]
  13.                [ -f fontfile ] [ -m smushmode ] [ -w outputwidth ]
  14.                [ -C controlfile ] [ -I infocode ]
  15.  
  16.  
  17.      DESCRIPTION
  18.           figlet prints its input using large characters made up of
  19.           ordinary screen characters.  figlet output is generally
  20.           reminiscent of the sort of ``signatures'' many people like
  21.           to put at the end of e-mail and UseNet messages.  It is also
  22.           reminiscent of the output of some banner programs, although
  23.           it is oriented normally, not sideways.
  24.  
  25.           figlet can print in a variety of fonts, both left-to-right
  26.           and right-to-left, with adjacent characters kerned and
  27.           ``smushed'' together in various ways.  figlet fonts are
  28.           stored in separate files, which can be identified by the
  29.           suffix ``.flf''.  Most figlet font files will be stored in
  30.           figlet's default font directory.
  31.  
  32.           figlet can also use ``control files'', which tell it to map
  33.           certain input characters to certain other characters,
  34.           similar to the Unix tr command.  Control files can be
  35.           identified by the suffix ``.flc''.  Most figlet control
  36.           files will be stored in figlet's default font directory.
  37.  
  38.  
  39.      OTHER FONTS & MAILING LIST
  40.           As of this writing you can get many fonts which are not in
  41.           the basic figlet package by anonymous FTP from
  42.           ftp.nicoh.com:pub/figlet/fonts.  ftp.nicoh.com:pub/figlet
  43.           should also contain the latest version of figlet and other
  44.           utilities related to figlet.  Of special interest are non-
  45.           Roman fonts.  As of this writing, there are Hebrew and
  46.           Cyrillic (Russian) fonts; more are expected.
  47.  
  48.           We run an e-mail list dedicated to figlet software and font
  49.           announcements, as well as general discussion about figlet.
  50.           If you would like to be on this list, send e-mail to
  51.           listserv@vmd.cso.uiuc.edu with the message body
  52.  
  53.                subscribe figlet-l YOUR NAME
  54.  
  55.           where YOUR NAME should be replaced with your name.  For
  56.           those who don't want to be bothered with the discussions,
  57.           the list can be configured so that you only see software
  58.  
  59.  
  60.  
  61.      Page 1                                         (printed 12/29/95)
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  69.  
  70.  
  71.  
  72.           update notices, or only software and font announcements.
  73.  
  74.  
  75.      USAGE
  76.           Just start up figlet (type ``figlet'') and then type
  77.           whatever you want.  Alternatively, pipe a file or the output
  78.           of another command through figlet.  See EXAMPLES for other
  79.           things to do.
  80.  
  81.  
  82.      OPTIONS
  83.           figlet reads command line options from left to right, and
  84.           only the last option that affects a parameter has any
  85.           effect.  Every option has an inverse, so that, for example,
  86.           if figlet is customized with a C-shell alias, all the
  87.           options are still available.
  88.  
  89.           Commonly-used options are -f, -c, -m0, -t, -p and -v.
  90.  
  91.  
  92.           -f fontfile
  93.                Select the font.  The .flf suffix may be left off of
  94.                fontfile, in which case figlet automatically appends
  95.                it.  figlet looks for the file first in the default
  96.                font directory and then in the current directory, or,
  97.                if fontfile was given as a full pathname, in the given
  98.                directory.  If the -f option is not specified, figlet
  99.                uses the font that was specified when it was compiled.
  100.                To find out which font this is, use the -I3 option.
  101.  
  102.  
  103.           -d fontdirectory
  104.                Change the default font directory.  figlet looks for
  105.                fonts first in the default directory and then in the
  106.                current directory.  If the -d option is not specified,
  107.                figlet uses the directory that was specified when it
  108.                was compiled.  To find out which directory this is, use
  109.                the -I2 option.
  110.  
  111.  
  112.           -c
  113.           -l
  114.           -r
  115.           -x   These options handle the justification of figlet
  116.                output.  -c centers the output horizontally.  -l makes
  117.                the output flush-left.  -r makes it flush-right.  -x
  118.                (default) sets the justification according to whether
  119.                left-to-right or right-to-left text is selected.
  120.                Left-to-right text will be flush-left, while right-to-
  121.                left text will be flush-right.  (Left-to-right versus
  122.                right-to-left text is controlled by -L, -R and -X.)
  123.  
  124.  
  125.  
  126.  
  127.      Page 2                                         (printed 12/29/95)
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  135.  
  136.  
  137.  
  138.           -t
  139.           -w outputwidth
  140.                These options control the outputwidth, or the screen
  141.                width figlet assumes when formatting its output.
  142.                figlet uses the outputwidth to determine when to break
  143.                lines and how to center the output.  Normally, figlet
  144.                assumes 80 columns so that people with wide terminals
  145.                won't annoy the people they e-mail figlet output to.
  146.                -t sets the outputwidth to the terminal width.  If the
  147.                terminal width cannot be determined, the previous
  148.                outputwidth is retained.  -w sets the outputwidth to
  149.                the given integer.  An outputwidth of 1 is a special
  150.                value that tells figlet to print each non-space
  151.                character, in its entirety, on a separate line, no
  152.                matter how wide it is.
  153.  
  154.  
  155.           -p
  156.           -n   These options control how figlet handles newlines.  -p
  157.                puts figlet into ``paragraph mode'', which eliminates
  158.                some unnecessary line breaks when piping a multi-line
  159.                file through figlet.  In paragraph mode, figlet treats
  160.                line breaks within a paragraph as if they were merely
  161.                blanks between words.  (Specifically, -p causes figlet
  162.                to convert any newline which is not preceded by a
  163.                newline and not followed by a space character into a
  164.                blank.)  -n puts figlet back to normal (default), in
  165.                which every newline figlet reads causes it to produce a
  166.                line break.
  167.  
  168.  
  169.           -D
  170.           -E   -D switches to the German (Deutsch) character set.
  171.                Turns `[', `\' and `]' into umlauted A, O and U,
  172.                respectively.  `{', `|' and `}' turn into the
  173.                respective lower case versions of these.  `~' turns
  174.                into s-z.  (Of course, all this assumes the font author
  175.                has placed German characters in these positions in the
  176.                font file.  Many font authors do not.)  -E switches
  177.                back to English (default), i.e., the standard ASCII
  178.                character set.
  179.  
  180.  
  181.           -C controlfile
  182.           -N   These options deal with figlet controlfiles.  A
  183.                controlfile is a file containing a list of commands
  184.                that figlet executes each time it reads a character.
  185.                These commands can map certain input characters to
  186.                other characters, similar to the Unix tr command or the
  187.                figlet -D option.  figlet maintains a list of
  188.                controlfiles, which is empty when figlet starts up.  -C
  189.                adds the given controlfile to the list.  -N clears the
  190.  
  191.  
  192.  
  193.      Page 3                                         (printed 12/29/95)
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  201.  
  202.  
  203.  
  204.                controlfile list, cancelling the effect of any previous
  205.                -C.  figlet executes the commands in all controlfiles
  206.                in the list.  See CONTROLFILE FORMAT for details on how
  207.                to write a controlfile.
  208.  
  209.  
  210.           -m smushmode
  211.                Specifies how figlet should ``smush'' and kern
  212.                consecutive characters together.  On the command line,
  213.                -m0 can be useful, as it tells figlet to kern
  214.                characters without smushing them together.  Otherwise,
  215.                this option is rarely needed, as a figlet font file
  216.                specifies the best smushmode to use with the font.  -m
  217.                is, therefore, most useful to font designers testing
  218.                the various smushmodes with their font.  smushmode can
  219.                be -2 through 63.
  220.  
  221.                -2 Get mode from font file (default).
  222.                     Every figlet font file specifies the best
  223.                     smushmode to use with the font.  This will be one
  224.                     of the smushmodes (-1 through 63) described in the
  225.                     following paragraphs.
  226.  
  227.                -1 No smushing or kerning.
  228.                     Characters are simply concatenated together.
  229.  
  230.                0 Kern only.
  231.                     Characters are pushed together until they touch.
  232.  
  233.                     In any non-negative smushmode figlet kerns
  234.                     adjacent font characters, i.e., it pushes adjacent
  235.                     font characters together until their non-blank
  236.                     portions touch.  At that point, it may or may not
  237.                     push the two font characters 1 screen character
  238.                     closer, depending on the smushmode.  Pushing font
  239.                     characters one step closer requires ``smushing''
  240.                     two non-blank screen characters into a single
  241.                     screen character.  figlet has 6 ways of doing
  242.                     this, represented by 1, 2, 4, 8, 16 and 32.  The
  243.                     various non-negative smushmodes (0-63) are
  244.                     obtained by adding up the numbers corresponding to
  245.                     the sort of smushing figlet should do.  In
  246.                     particular smushmode 0 kerns characters without
  247.                     smushing them into each other.
  248.  
  249.                1 Smush equal characters.
  250.                     Two screen characters are smushed into a single
  251.                     character if they are the same.  The resulting
  252.                     character is the same as both of the original
  253.                     characters.  This mode does not smush the
  254.                     character known as a hardblank, which is a
  255.                     character that prints as a blank, but is not
  256.  
  257.  
  258.  
  259.      Page 4                                         (printed 12/29/95)
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  267.  
  268.  
  269.  
  270.                     smushed (except in mode 32).  See FONT FILE FORMAT
  271.                     for more information on hardblanks.
  272.  
  273.                2 Smush underscores.
  274.                     An underscore will be smushed into (and replaced
  275.                     by) any of ``|/\[]{}()<>''.
  276.  
  277.                4 Hierarchy smushing.
  278.                     Smushes certain characters together according to a
  279.                     hierarchy containing 6 classes: ``|'', ``/\'',
  280.                     ``[]'', ``{}'', ``()'', ``<>''.  A member of any
  281.                     class can be smushed into and replaced by a member
  282.                     of any later class.
  283.  
  284.                8 Opposite pair smushing, type I.
  285.                     Smushes opposing brackets (``[]''), braces
  286.                     (``{}'') and parentheses (``()'') together,
  287.                     replacing them with a vertical bar (`|').
  288.  
  289.                16 Opposite pair smushing, type II.
  290.                     Smushes opposing slashes (``/\'') and greater-
  291.                     than/less-than (``><'') together, replacing them
  292.                     with an upper-case `X'.  ``><'' are only smushed
  293.                     together when they are in that order, i.e., ``<>''
  294.                     will not be smushed.
  295.  
  296.                32 Hardblank smushing.
  297.                     Smushes two hardblanks together, replacing them
  298.                     with a single hardblank.  See FONT FILE FORMAT for
  299.                     more information on hardblanks.
  300.  
  301.  
  302.           -v
  303.           -I infocode
  304.                These options print various information about figlet,
  305.                then exit.  If several of these options are given on
  306.                the command line, only the last is executed, and only
  307.                after all other command-line options have been dealt
  308.                with.
  309.  
  310.                -v prints version and copyright information, as well as
  311.                a ``Usage: ...''  line.  -I prints the information
  312.                corresponding to the given infocode in a consistent,
  313.                reliable (i.e., guaranteed to be the same in future
  314.                releases) format.  -I is primarily intended to be used
  315.                by programs that use figlet.  infocode can be any of
  316.                the following.
  317.  
  318.                -1 Normal operation (default).
  319.                     This infocode indicates that figlet should operate
  320.                     normally, not giving any informational printout,
  321.                     printing its input in the selected font.
  322.  
  323.  
  324.  
  325.      Page 5                                         (printed 12/29/95)
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  333.  
  334.  
  335.  
  336.                0 Version and copyright.
  337.                     This is identical to -v.
  338.  
  339.                1 Version (integer).
  340.                     This will print the version of your copy of figlet
  341.                     as a decimal integer.  The main version number is
  342.                     multiplied by 10000, the sub-version number is
  343.                     multiplied by 100, and the sub-sub-version number
  344.                     is multiplied by 1.  These are added together, and
  345.                     the result is printed out.  For example, figlet
  346.                     2.1 will print ``20100''.  If there is ever a
  347.                     version 2.1.1, it will print ``20101''.
  348.                     Similarly, version 3.7.2 would print ``30702''.
  349.                     These numbers are guaranteed to be ascending, with
  350.                     later versions having higher numbers.  Note that
  351.                     the first major release of figlet, version 2.0,
  352.                     did not have the -I option.
  353.  
  354.                2 Default font directory.
  355.                     This will print the default font directory.  It is
  356.                     affected by the -d option.
  357.  
  358.                3 Font.
  359.                     This will print the name of the font figlet would
  360.                     use.  It is affected by the -f option.  This is
  361.                     not a filename; the ``.flf'' suffix is not
  362.                     printed.
  363.  
  364.                4 Output width.
  365.                     This will print the value figlet would use for
  366.                     outputwidth, the number of columns wide figlet
  367.                     assumes the screen is.  It is affected by the -w
  368.                     and -t options.
  369.  
  370.                If infocode is any other positive value, figlet will
  371.                simply exit without printing anything.
  372.  
  373.  
  374.           -L
  375.           -R
  376.           -X   These options control whether figlet prints left-to-
  377.                right or right-to-left.  -L selects left-to-right
  378.                printing.  -R selects right-to-left printing.  -X
  379.                (default) makes figlet use whichever is specified in
  380.                the font file.
  381.  
  382.  
  383.      EXAMPLES
  384.           To use figlet with its default settings, simply type
  385.  
  386.                example% figlet
  387.  
  388.  
  389.  
  390.  
  391.      Page 6                                         (printed 12/29/95)
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  399.  
  400.  
  401.  
  402.           and then type whatever you like.
  403.  
  404.           To change the font, use the -f option, for example,
  405.  
  406.                example% figlet -f script
  407.  
  408.  
  409.           Use the -c option if you would prefer centered output:
  410.  
  411.                example% figlet -c
  412.  
  413.  
  414.           We have found that the most common use of figlet is making
  415.           up large text to be placed in e-mail messages.  For this
  416.           reason, figlet defaults to 80 column output.  If you are
  417.           using a wider terminal, and would like figlet to use the
  418.           full width of your terminal, use the -t option:
  419.  
  420.                example% figlet -t
  421.  
  422.  
  423.           If you don't want figlet to smush font characters into each
  424.           other, use the -m0 option:
  425.  
  426.                example% figlet -m0
  427.  
  428.  
  429.           If figlet gets its input from a file, it is often a good
  430.           idea to use -p:
  431.  
  432.                example% figlet -p < myfile
  433.  
  434.  
  435.           Of course, the above can be combined:
  436.  
  437.                example% figlet -ptm0 -f shadow < anotherfile
  438.                example% figlet -cf slant
  439.  
  440.  
  441.  
  442.         Other Things to Try
  443.           On many systems nice effects can be obtained from the lean
  444.           font by piping it through tr.  Some you might want to try
  445.           are the following:
  446.  
  447.                example% figlet -f lean | tr ' _/' ' ()'
  448.                example% figlet -f lean | tr ' _/' './\\'
  449.                example% figlet -f lean | tr ' _/' ' //'
  450.                example% figlet -f lean | tr ' _/' '/  '
  451.  
  452.           Similar things can be done with the block font and many of
  453.           the other figlet fonts.
  454.  
  455.  
  456.  
  457.      Page 7                                         (printed 12/29/95)
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  465.  
  466.  
  467.  
  468.      FONT FILE FORMAT
  469.           If you would like to design a figlet font, it is usually
  470.           best to begin with an already-existing font.  Except for the
  471.           first line of a font file, most of the file format should be
  472.           obvious.  If you design a font, please let us know about it!
  473.           (See AUTHORS for e-mail addresses.)
  474.  
  475.           A figlet font filename must have the suffix ``.flf''.
  476.  
  477.           A figlet font file begins with a header.  The header
  478.           consists of one line giving information about the font,
  479.           followed by zero or more comment lines, which figlet
  480.           ignores.  Following the header is the font data.
  481.  
  482.  
  483.         The Header
  484.           The first line of a figlet font file is of the following
  485.           form:
  486.  
  487.                flf2ahardblank height up_ht maxlen smushmode cmt_count rtol
  488.  
  489.           where hardblank is a character, and the remaining values are
  490.           integers, for example:
  491.  
  492.                flf2a$ 6 5 20 15 3 0
  493.  
  494.           The last value, rtol, may be omitted, in which case it is
  495.           assumed to be 0.
  496.  
  497.                flf2a$ 6 5 20 15 3
  498.  
  499.  
  500.           For those desiring a quick explanation, the above line
  501.           indicates that this font has characters which are 6 lines
  502.           tall, 5 of which are above the baseline, no line in the font
  503.           data is more than 20 characters long, the default smushmode
  504.           is 15 (kern and smush in various ways), there are 3 comment
  505.           lines, and this font is to be printed left-to-right.  More
  506.           in-depth explanations follow.
  507.  
  508.           The first five characters of a font file should be
  509.           ``flf2a''.  ``flf2'' is the magic number of a figlet 2 font
  510.           file.  The next character (`a') is currently ignored.  It
  511.           may mean something in future versions of figlet.  If it
  512.           does, you can be sure your fonts will still work if this
  513.           character is `a'.
  514.  
  515.           Immediately following this is the hardblank (character).
  516.           Note that there are no blanks between ``flf2a'' and the
  517.           hardblank.  figlet can smush together consecutive characters
  518.           in various ways.  Normally, any character can be smushed
  519.           into a blank.  A hardblank prints as a blank, but cannot be
  520.  
  521.  
  522.  
  523.      Page 8                                         (printed 12/29/95)
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  531.  
  532.  
  533.  
  534.           smushed into any character except a blank, and, if smushmode
  535.           32 is enabled, another hardblank.  (For example, the `r' in
  536.           script.flf contains a hardblank, `$' in that font.  To see
  537.           why this is necessary, create a copy of script.flf with this
  538.           hardblank replaced by a blank.  In this new font, the ``tr''
  539.           combination looks awful.)
  540.  
  541.           By convention, the hardblank is a `$', but it can be any
  542.           character besides blank, newline and null.  If you want the
  543.           entire printing ASCII set available to use, make the
  544.           hardblank a <delete> character.
  545.  
  546.           Then comes the height (integer).  This is the number of
  547.           screen lines high that each character in the font is.
  548.  
  549.           up_ht (integer) is the number of lines from the baseline of
  550.           a character to the top of the character, i.e., it is the
  551.           height of a character, ignoring any descenders.  This number
  552.           is currently ignored by figlet, but future versions may use
  553.           it.
  554.  
  555.           maxlen (integer) is the maximum length of a line in the font
  556.           file (excluding the first line and the comments lines, which
  557.           can be as long as you want).  You may want to make this a
  558.           little too large as a safety measure.
  559.  
  560.           smushmode (integer) determines how much figlet smushes the
  561.           font.  Possible smushmodes are -1 through 63.  Typically,
  562.           you'll want to use 0 (kern font characters without smushing
  563.           them together), -1 (no kerning or smushing) or 15 (smush
  564.           various pairs of characters together into single
  565.           characters).  To try out different smushmodes with your
  566.           font, use the -m command-line option.  See OPTIONS for a
  567.           more detailed explanation of these smushmodes.  (Note that a
  568.           smushmode of -2 can be given on the command line, but not in
  569.           a font file.)
  570.  
  571.           Between the first line and the actual characters of the font
  572.           are the comment lines.  Cmt_count specifies how many lines
  573.           there are.  These lines are optional, may be as long as you
  574.           want, and are ignored by figlet.
  575.  
  576.           rtol (integer) tells which direction the font is to be
  577.           printed.  0 means left-to-right, and 1 means right-to-left.
  578.           Left-to-right text is printed flush-left by default, while
  579.           right-to-left text is printed flush-right by default.  rtol
  580.           may be omitted, in which case 0 (left-to-right) is assumed.
  581.           Earlier versions of figlet (i.e., version 2.0) ignore rtol.
  582.  
  583.           Thus, a complete figlet font file header will look something
  584.           like the following:
  585.  
  586.  
  587.  
  588.  
  589.      Page 9                                         (printed 12/29/95)
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  597.  
  598.  
  599.  
  600.                flf2a$ 6 5 20 15 3
  601.                Example by Glenn Chappell <ggc@uiuc.edu> 8/94
  602.                Permission is hereby given to modify this font, as long as the
  603.                modifier's name is placed on a comment line.
  604.  
  605.  
  606.         The Font Data
  607.           The font data begins on the next line after the comments and
  608.           continues to the end of the file.  The characters from ` '
  609.           to `~' are given in standard ASCII order, followed by the
  610.           extra German characters: umlauted `A', `O', `U', `a', `o'
  611.           and `u' and s-z.  Following these are the optional code-
  612.           tagged characters.  Each character uses height lines, where
  613.           height was given on the first line of the font file.  Each
  614.           code-tagged character is preceeded by an extra line with the
  615.           character's code (a number) on it.  The characters in the
  616.           file are given exactly as they should be printed out, with
  617.           two exceptions: (1) hardblanks should be the hardblank
  618.           character, not a blank, and (2) every line has an endmark
  619.           character.
  620.  
  621.           In most figlet fonts, the endmark is either `@' or '#'.
  622.           figlet eliminates the last block of consecutive equal
  623.           characters from each line (other than the header lines) when
  624.           the file is read in.  By convention, the last line of a font
  625.           character has 2 endmarks, while all the rest have one.  This
  626.           makes it easy to see where characters begin and end.  No
  627.           line should have more than 2 endmarks.
  628.  
  629.           The code-tagged characters are optional, and are ignored by
  630.           earier versions of figlet (i.e., version 2.0).  The code-
  631.           tagged characters begin just after the German characters.
  632.           There can be as many or as few of these as you like.  The
  633.           first line of a code-tagged character has a single number on
  634.           it, the character's code, which is the number by which
  635.           figlet will refer to it.  This number can be in decimal,
  636.           octal or hexadecimal, using the standard scanf conventions
  637.           for such numbers.  On the next line the character itself
  638.           begins, in the same format as the un-tagged characters.
  639.  
  640.           If two or more font characters have the same tag, the last
  641.           one in the font is the one used.  For this purpose, the
  642.           normal ASCII characters are considered to have tags equal to
  643.           their ASCII value, while the German characters are given
  644.           tags -255 through -249.
  645.  
  646.           There is no required encoding for the code-tagged
  647.           characters.  figlet simply prints the character with the
  648.           given code when it is told to.  However, in most of the
  649.           fonts, we have used ISO Latin-1 for characters 160-255,
  650.           following a suggestion of Zhahai Stewart.  Stewart has
  651.           suggested using Unicode for other characters.
  652.  
  653.  
  654.  
  655.      Page 10                                        (printed 12/29/95)
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  663.  
  664.  
  665.  
  666.           The zero tag is treated specially.  It is figlet's ``missing
  667.           character''.  Whenever figlet is told to print a character
  668.           which doesn't exist in the current font, it will print
  669.           character zero.  If character zero doesn't exist, nothing
  670.           will be printed.
  671.  
  672.  
  673.         Notes
  674.           It is very important that every character in a font has the
  675.           same height, and, once the endmarks are removed, that all
  676.           the lines constituting a single font character have the same
  677.           length.  Be careful also that no lines in the font file have
  678.           trailing blanks, as figlet will take these to be the
  679.           endmarks.  Many problems like these can be found easily
  680.           using chkfont, part of the standard figlet package, and also
  681.           available, as of this writing, by anonymous FTP from
  682.           ftp.nicoh.com:pub/figlet/util.
  683.  
  684.           If you don't want to define all the characters, make the
  685.           undefined characters empty, i.e., each line of the character
  686.           should consist only of one or two endmarks.
  687.  
  688.           The blank character should usually be made entirely of
  689.           hardblanks.  (Most slanted fonts are an exception to this.)
  690.  
  691.           If you design a font, it is helpful if you put your name and
  692.           an e-mail address on a comment line.  If you will allow
  693.           others to modify your font, you may want to say so on a
  694.           comment line.
  695.  
  696.           If a font contains a non-Roman alphabet stored in locations
  697.           normally taken by ASCII, we have found it helpful to include
  698.           a ``translation'' table as one of the characters of the
  699.           font.  Typically, the ``~'' character contains a list of all
  700.           the special characters in the font, along with the ASCII
  701.           characters they correspond to.  It is a good idea to keep
  702.           this table no more than 79 columns wide.  (Thanks to
  703.           Gedaliah Friedenberg for this idea.)
  704.  
  705.           Again, if you design a font, please let us know!
  706.  
  707.  
  708.      CONTROLFILE FORMAT
  709.           (Note: This section isn't terribly well-written.  I really
  710.           don't have time right now to do much with it.  If you want
  711.           to write a controlfile, just look at the existing files and
  712.           ignore the f command, and you'll probably do pretty well.
  713.           Anyone needing extra help can write us at <figlet@uiuc.edu>.
  714.           Also, anyone willing to revise this section or the FONT FILE
  715.           FORMAT section is welcome to do so.  Please let us know
  716.           about your efforts if you give it a try.  -GGC-)
  717.  
  718.  
  719.  
  720.  
  721.      Page 11                                        (printed 12/29/95)
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  729.  
  730.  
  731.  
  732.           Controlfiles are files containing lists of commands that
  733.           figlet executes each time it reads a character.  A
  734.           controlfile is specified to figlet using the -C command line
  735.           option (see OPTIONS).  In the file itself the first line
  736.           identifies the file as a figlet controlfile, and the
  737.           remaining lines are the commands, one per line.  Currently,
  738.           the only recognized commands tell figlet to translate one
  739.           character to another (similar to the Unix tr command).  In
  740.           future versions of figlet, more commands may be added.  As
  741.           with font files, when writing a controlfile, it is usually
  742.           best to begin with an existing file.
  743.  
  744.           The filename of a figlet controlfile must have the suffix
  745.           ``.flc''.
  746.  
  747.           The first five characters of a controlfile should be
  748.           ``flc2a''.  ``flc2'' is the magic number of a figlet
  749.           controlfile.  The next character (`a') is currently ignored.
  750.           It may mean something in future versions of figlet.  If it
  751.           does, you can be sure your files will still work if this
  752.           character is `a'.
  753.  
  754.           Each of the following lines of the file consists of a one-
  755.           character command followed by whatever parameters the
  756.           command requires, excepting blank lines, which are ignored.
  757.           There are currently three recognized commands: #, t and f.
  758.  
  759.  
  760.           # comment
  761.                Any line beginning with # is ignored.
  762.  
  763.  
  764.           t translate
  765.                This is similar to the Unix tr command.  It directs
  766.                figlet to ``translate'' one character to another.
  767.                ``t'' is followed by one or more blanks, then by a
  768.                character (or range of characters, e.g., ``A-Z'') then
  769.                one or more blanks, then another character (or range).
  770.  
  771.                For example,
  772.  
  773.                     t # $
  774.  
  775.                will convert `#' to `$', while
  776.  
  777.                     t A-Z a-z
  778.  
  779.                will convert upper-case ASCII to lower-case ASCII.  A
  780.                range should always be followed by another range of the
  781.                same size.
  782.  
  783.                A number of backslash (`\') options are available for
  784.  
  785.  
  786.  
  787.      Page 12                                        (printed 12/29/95)
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  795.  
  796.  
  797.  
  798.                specifying characters.  Any of the standard ``C''
  799.                language backslash-character conventions are legal,
  800.                e.g., ``\n'' for newline, etc.  Also, backslash-blank
  801.                can be used to specify a blank character.  Backslash
  802.                followed by a number in any of the standard scanf
  803.                formats (decimal, octal or hexadecimal) specifies the
  804.                character with the given code.  For example,
  805.  
  806.                     t \n-\  \65-W
  807.  
  808.                will convert all characters from newline to blank into
  809.                the corresponding characters from `A' to `W' (`A' has
  810.                code 65).
  811.  
  812.                If a number of consecutive t commands are given, then
  813.                for each character input, only the first applicable
  814.                command, if any, will be executed.  As a result,
  815.  
  816.                     t A B
  817.                     t B A
  818.  
  819.                will swap the characters `A' and `B'.  If figlet reads
  820.                an `A' the first command will change `A' to `B', in
  821.                which case the second will not be executed.  In the
  822.                following list,
  823.  
  824.                     t A B
  825.                     t A C
  826.  
  827.                the second command is never executed.  In short, a
  828.                sequence of t commands ``does what it ought to''.
  829.  
  830.  
  831.           f freeze
  832.                More complex files, in which a single character is
  833.                acted upon by several t commands, can be set up using
  834.                the f command.  f ``freezes'' the current character,
  835.                executing the remaining commands in the controlfile as
  836.                if they were in a separate file.  The f command has no
  837.                parameters, and anything following it on the same line
  838.                is ignored.  (Note: If you, along with so many others,
  839.                cannot figure out what the f command does, or why
  840.                anyone would use it, feel free to ignore it.)  After
  841.                figlet executes a t command, it skips to the end of the
  842.                file or to the next f command.  If any t commands
  843.                follow, the first applicable one will be executed.  The
  844.                result is that f acts as a ``freeze'', executing the
  845.                remaining commands as if they were in a separate file.
  846.  
  847.  
  848.  
  849.      FILES
  850.  
  851.  
  852.  
  853.      Page 13                                        (printed 12/29/95)
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  861.  
  862.  
  863.  
  864.           file.flf            figlet font file
  865.           file.flc            figlet control file
  866.  
  867.  
  868.      DIAGNOSTICS
  869.           figlet's diagnostics are intended to be self-explanatory.
  870.           Possible messages are
  871.  
  872.                Usage: ...
  873.                Out of memory
  874.                Unable to open font file
  875.                Not a figlet 2 font file
  876.                Unable to open control file
  877.                Not a figlet 2 control file
  878.                "-t" is disabled, since ioctl is not fully implemented.
  879.  
  880.           This last message is printed when the -t option is given,
  881.           but the operating system in use does not include the system
  882.           call figlet uses to determine the terminal width.
  883.  
  884.           figlet also prints an explanatory message if the -F option
  885.           is given on the command line.  The earlier version of
  886.           figlet, version 2.0, listed the available fonts when the -F
  887.           option was given.  This option has been removed from figlet
  888.           2.1.  It has been replaced by the figlist script, which is
  889.           part of the standard figlet package.
  890.  
  891.  
  892.      ORIGIN
  893.           ``figlet'' stands for ``Frank, Ian and Glenn's LETters''.
  894.           Inspired by Frank's .sig, Glenn wrote (most of) it, and Ian
  895.           helped.
  896.  
  897.           Most of the standard figlet fonts were inspired by
  898.           signatures on various UseNet articles.  Since typically
  899.           hundreds of people use the same style of letters in their
  900.           signatures, it was often not deemed necessary to give credit
  901.           to any one font designer.
  902.  
  903.  
  904.      BUGS
  905.           Very little error checking is done on font and control
  906.           files.  While figlet tries to be forgiving of errors, and
  907.           should (hopefully) never actually crash, using an
  908.           improperly-formatted file with figlet will produce
  909.           unpredictable output.
  910.  
  911.           figlet does not handle formatting characters in a very
  912.           intelligent way.  A tab character is converted to a blank,
  913.           and vertical-tab, form-feed and carriage-return are each
  914.           converted to a newline.  On many systems, tabs can be
  915.           handled better by piping files through expand before piping
  916.  
  917.  
  918.  
  919.      Page 14                                        (printed 12/29/95)
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.      FIGLET(6)              v2.1 (28 Apr 1995)               FIGLET(6)
  927.  
  928.  
  929.  
  930.           through figlet.
  931.  
  932.           figlet output is quite ugly if it is displayed in a
  933.           proportionally-spaced font.  I suppose this is to be
  934.           expected.
  935.  
  936.  
  937.      AUTHORS
  938.           Glenn Chappell <ggc@uiuc.edu> did most of the work. You can
  939.           e-mail him but he is not an e-mail fanatic; people who e-
  940.           mail Glenn will probably get answers, but if you e-mail his
  941.           best friend:
  942.  
  943.           Ian Chai <chai@uiuc.edu>, who is an e-mail fanatic, you'll
  944.           get answers, endless conversation about the mysteries of
  945.           life, invitations to join some 473 mailing lists and a free
  946.           toaster.  (Well, ok, maybe not the free toaster.)
  947.  
  948.           Frank inspired this whole project with his .sig, but don't
  949.           e-mail him; he's decidedly an un-e-mail-fanatic.
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.      Page 15                                        (printed 12/29/95)
  986.  
  987.  
  988.